<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/**
 * CRUD del perfil de usuario
 */
class Usuario_crud extends CI_Controller {
	
	function __construct()
	{
		parent::__construct();
		
		// load library
		$this->load->library(array('table','form_validation'));

		// load helper
		$this->load->helper('url');
		
		// load model
		$this->load->model('Usuarios_model','',TRUE);
	}
	
	function index() {
		
		$usuarios = $this->Usuarios_model->list_all()->result();
		$this->table->set_heading('Id', 'Nombre', 'Apellido', 'Documento', 'Fecha de nacimiento', 'Direccion', 'E-mail', 'Usuario', 'Enable', 'Rol', 'Opciones' );
		
		foreach ($usuarios as $user)
		{
			$this->table->add_row($user->id, $user->nombre, $user->apellido,
					 $user->documento, $user->fec_nac, $user->direccion, $user->email,
					 $user->nombre, $user->enable, $user->id_role,
					 anchor('usuario_crud/view/'.$user->id,'view',array('class'=>'view')).' '.
					 anchor('usuario_crud/update/'.$user->id,'update',array('class'=>'update')).' '.
					 anchor('usuario_crud/delete/'.$user->id,'delete',array('class'=>'delete','onclick'=>"return confirm('Realmente desea eliminar este usuario?')"))
			);
		}
		$data['table'] = $this->table->generate();
		$this->load->view('usuariosList', $data);
		
	}
	
	function add()
	{
		$this->_set_fields();
	
		$data['title'] = 'Agregar nuevo usuario';
		$data['message'] = '';
		$data['action'] = site_url('usuario_crud/addUsuario');
		$data['link_back'] = anchor('usuario_crud/index/','Lista de usuarios',array('class'=>'back'));
	
		$this->load->view('usuarioAdd', $data);
	}
	
	function addUsuario()
	{
		$data['title'] = 'Agregar nuevo usuario';
		$data['action'] = site_url('usuario_crud/addUsuario');
		$data['link_back'] = anchor('usuario_crud/index/','Lista de usuarios',array('class'=>'back'));
	
		$this->_set_fields();
		$usuario = array(
		//		atribTabla			ValorFormulario
				'nombre' 			=> $this->input->post('nombre'),
				'apellido' 			=> $this->input->post('apellido'),
				'documento' 		=> $this->input->post('documento'),
				'fec_nac' 			=> $this->input->post('fec_nac'),
				'direccion' 		=> $this->input->post('direccion'),
				'email' 			=> $this->input->post('email'),
				'password' 			=> $this->input->post('password'),
				'username'		 	=> $this->input->post('nombre_usuario'),
				'enable'		 	=> $this->input->post('enable'),
				'id_role'		 	=> $this->input->post('id_role'),
		);
		$id = $this->Usuarios_model->save($usuario);
			
		$data['message'] = '<div class="success">El usuario fue dado de alta exitosamente</div>';
	
		$this->load->view('usuarioAdd', $data);
	}
	
	function view($id)
	{
		$data['title'] = 'Detalle del usuario';
		$data['link_back'] = anchor('usuario_crud/index/','Lista de usuarios',array('class'=>'back'));
	
		$data['usuario'] = $this->Usuarios_model->get_by_id($id)->row();
	
		// load view
		$this->load->view('usuarioView', $data);
	}
	
	function update($id)
	{
		$this->_set_fields();
	
		// prefill form values
		$usuario = $this->Usuarios_model->get_by_id($id)->row();
	
		$this->_set_form($usuario);
	
		// set common properties
		$data['title'] = 'Editar usuario';
		$data['message'] = '';
		$data['action'] = site_url('usuario_crud/updateUsuario');
		$data['link_back'] = anchor('usuario_crud/index/','Lista de usuarios',array('class'=>'back'));
	
		// load view
		$this->load->view('usuarioEdit', $data);
	}
	
	function updateUsuario()
	{
		// set common properties
		$data['title'] = 'Editar usuario';
		$data['action'] = site_url('usuario_crud/updateUsuario');
		$data['link_back'] = anchor('usuario_crud/index/','Lista de usuarios',array('class'=>'back'));
				
		// set empty default form field values
		//$this->_set_fields();
		
		// run validation
		//if ($this->form_validation->run() == FALSE)
		/*
		Como todavía no se le dijo a la Clase Form_validation que valide algo todavía, devuelve FALSE (booleano) por defecto.
		La función run() solamente devuelve TRUE si se aplicaron satisfactoriamente las reglas sin que ninguna fallara.
		*/
		//{
		//	$data['message'] = '';
		//}
		//else
		//{
			// save data

			$id = $this->input->post('id');
			$usuario = array('nombre' => $this->input->post('nombre'),
			'apellido' => $this->input->post('apellido'),
			'documento' => $this->input->post('documento'),
			'fec_nac' 			=> $this->input->post('fec_nac'),
			'direccion' 		=> $this->input->post('direccion'),
			);

			$usuario = $this->Usuarios_model->update($id,$usuario);
			
			$this->_set_form($usuario);

			$data['message'] = '<div class="success">Usuario editado con exito</div>';

		$this->load->view('usuario_crud', $data);
	}
	
	function delete($id)
	{
		// delete usuario
		$this->Usuarios_model->delete($id);
		
		// redirect to usuarios list page
		redirect('usuario_crud/index/','refresh');
	}
	
	// set empty default form field values
	function _set_fields()
	{
		$this->form_data = new stdClass;
		$this->form_data->id = '';
		$this->form_data->nombre = '';
		$this->form_data->apellido = '';
		$this->form_data->documento = '';
		$this->form_data->fec_nac = '';
		$this->form_data->direccion = '';
		$this->form_data->email = '';
		$this->form_data->password = '';
		$this->form_data->enable = '';
		$this->form_data->nombre_usuario = '';
		$this->form_data->id_role = '';
	}

	function _set_form($usuario)
	{
		$this->form_data->id = $usuario->id;
		$this->form_data->nombre = $usuario->nombre;
		$this->form_data->apellido = $usuario->apellido;
		$this->form_data->documento = $usuario->documento;
		$this->form_data->fec_nac = $usuario->fec_nac;
		$this->form_data->direccion = $usuario->direccion;
		$this->form_data->email = $usuario->email;
		$this->form_data->password = $usuario->password;
		$this->form_data->password = $usuario->enable;
		$this->form_data->nombre_usuario = $usuario->username;
		$this->form_data->id_role = $usuario->id_role;
	}
	
}





?>